package com.xnew.entity.memberArchives;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.xnew.bean.common.FileInfo;
import org.springframework.data.annotation.Transient;

import java.io.Serializable;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
* @Author: Zhozh
* @Description: 证券公司资格信息
* @DateTime: 2022/4/28
* @Params: 
* @Return 
*/
@TableName("t10_seccomp_bqsi_mainrecd")
public class SeccompBqsiMainrecd implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
    * 信息主记录编号
    */
    @TableId("info_main_record_no")
    private String infoMainRecordNo;

    /**
    * 机构用户编号
    */
    private String orgUserNo;

    /**
    * 信息报送审核状态编码
    */
    private String infsubAuditStatusCode;

    /**
    * 所选业务资格类型名称
    */
    private String sltdBusiQlfyTypeName;

//    /**
//     * 许可证类型编码437经营范围
//     */
//    private String sltdBusiQlfyTypeCode437;
//
//    /**
//     * 许可证类型编码438经中国证监会核准或认可的业务资格
//     */
//    private String sltdBusiQlfyTypeCode438;
//
//    /**
//     * 许可证类型编码439交易所核准的业务资格
//     */
//    private String sltdBusiQlfyTypeCode439;
//
//    /**
//     * 许可证类型编码440证券业协会核准的业务资格
//     */
//    private String sltdBusiQlfyTypeCode440;
//
//    /**
//     * 许可证类型编码441中国人民银行核准的业务资格
//     */
//    private String sltdBusiQlfyTypeCode441;
//
//    /**
//     * 许可证类型编码442其它资格
//     */
//    private String sltdBusiQlfyTypeCode442;

    /**
    * 创建人编号
    */
    private String infoInputPsnNo;

    /**
    * 创建时间
    */
    private String infoInputTime;

    /**
    * 信息修改人编号
    */
    private String infoModyPsnNo;

    /**
    * 信息修改时间
    */
    private String infoModyTime;

    /**
    * 是否关闭状态
    */
    private String isCloseStatus;

    /**
     * 中国证监会核发的经营证券业务许可证资格范围
     */
    @TableField("other_column_200")
    private String otherColumn200;

    /**
     * 经中国证监会核准或认可的其他业务资格
     */
    @TableField("other_column_300")
    private String otherColumn300;

    /**
     * 中国证监会及其他会管单位核准的业务资格
     */
    @TableField("other_column_400")
    private String otherColumn400;

    /**
     * 中国人民银行核准的业务资格
     */
    @TableField("other_column_500")
    private String otherColumn500;

    /**
     * 其他
     */
    @TableField("other_column_600")
    private String otherColumn600;

    @TableField(exist = false)
    private List<SltdBqsiSubrecd> sltdBqsiSubrecdList;

    /**
     * 审核日志
     */
    @TableField(exist = false)
    private List<AuditLog> auditLogList;

    public List<AuditLog> getAuditLogList() {
        return auditLogList;
    }

    public void setAuditLogList(List<AuditLog> auditLogList) {
        this.auditLogList = auditLogList;
    }

    @TableField(exist = false)
    private List<MemInfoChgHist> histList;

    public List<MemInfoChgHist> getHistList() {
        return histList;
    }

    public void setHistList(List<MemInfoChgHist> histList) {
        this.histList = histList;
    }

    @TableField(exist = false)
    private List<FileInfo> fileList;

    public List<FileInfo> getFileList() {
        return fileList;
    }

    public void setFileList(List<FileInfo> fileList) {
        this.fileList = fileList;
    }

    public SeccompBqsiMainrecd() {
    }

    public SeccompBqsiMainrecd(String infoMainRecordNo, String orgUserNo, String infsubAuditStatusCode,
                               String sltdBusiQlfyTypeName, String infoInputPsnNo, String infoInputTime,
                               String infoModyPsnNo, String infoModyTime, String isCloseStatus,
                               List<AuditLog> auditLogList, List<MemInfoChgHist> histList, List<FileInfo> fileList,
                               Map<String, Object> dictNameResult) {
        this.infoMainRecordNo = infoMainRecordNo;
        this.orgUserNo = orgUserNo;
        this.infsubAuditStatusCode = infsubAuditStatusCode;
        this.sltdBusiQlfyTypeName = sltdBusiQlfyTypeName;
        this.infoInputPsnNo = infoInputPsnNo;
        this.infoInputTime = infoInputTime;
        this.infoModyPsnNo = infoModyPsnNo;
        this.infoModyTime = infoModyTime;
        this.isCloseStatus = isCloseStatus;
        this.auditLogList = auditLogList;
        this.histList = histList;
        this.fileList = fileList;
        this.dictNameResult = dictNameResult;
    }

    public String getInfoMainRecordNo() {
        return infoMainRecordNo;
    }

    public void setInfoMainRecordNo(String infoMainRecordNo) {
        this.infoMainRecordNo = infoMainRecordNo;
    }

    public String getOrgUserNo() {
        return orgUserNo;
    }

    public void setOrgUserNo(String orgUserNo) {
        this.orgUserNo = orgUserNo;
    }

    public String getInfsubAuditStatusCode() {
        return infsubAuditStatusCode;
    }

    public void setInfsubAuditStatusCode(String infsubAuditStatusCode) {
        this.infsubAuditStatusCode = infsubAuditStatusCode;
    }

    public String getSltdBusiQlfyTypeName() {
        return sltdBusiQlfyTypeName;
    }

    public void setSltdBusiQlfyTypeName(String sltdBusiQlfyTypeName) {
        this.sltdBusiQlfyTypeName = sltdBusiQlfyTypeName;
    }

    public String getInfoInputPsnNo() {
        return infoInputPsnNo;
    }

    public void setInfoInputPsnNo(String infoInputPsnNo) {
        this.infoInputPsnNo = infoInputPsnNo;
    }

    public String getInfoInputTime() {
        return infoInputTime;
    }

    public void setInfoInputTime(String infoInputTime) {
        this.infoInputTime = infoInputTime;
    }

    public String getInfoModyPsnNo() {
        return infoModyPsnNo;
    }

    public void setInfoModyPsnNo(String infoModyPsnNo) {
        this.infoModyPsnNo = infoModyPsnNo;
    }

    public String getInfoModyTime() {
        return infoModyTime;
    }

    public void setInfoModyTime(String infoModyTime) {
        this.infoModyTime = infoModyTime;
    }

    public String getIsCloseStatus() {
        return isCloseStatus;
    }

    public void setIsCloseStatus(String isCloseStatus) {
        this.isCloseStatus = isCloseStatus;
    }

    public String getOtherColumn200() {
        return otherColumn200;
    }

    public void setOtherColumn200(String otherColumn200) {
        this.otherColumn200 = otherColumn200;
    }

    public String getOtherColumn300() {
        return otherColumn300;
    }

    public void setOtherColumn300(String otherColumn300) {
        this.otherColumn300 = otherColumn300;
    }

    public String getOtherColumn400() {
        return otherColumn400;
    }

    public void setOtherColumn400(String otherColumn400) {
        this.otherColumn400 = otherColumn400;
    }

    public String getOtherColumn500() {
        return otherColumn500;
    }

    public void setOtherColumn500(String otherColumn500) {
        this.otherColumn500 = otherColumn500;
    }

    public String getOtherColumn600() {
        return otherColumn600;
    }

    public void setOtherColumn600(String otherColumn600) {
        this.otherColumn600 = otherColumn600;
    }

    public List<SltdBqsiSubrecd> getSltdBqsiSubrecdList() {
        return sltdBqsiSubrecdList;
    }

    public void setSltdBqsiSubrecdList(List<SltdBqsiSubrecd> sltdBqsiSubrecdList) {
        this.sltdBqsiSubrecdList = sltdBqsiSubrecdList;
    }

    @Transient
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @TableField(exist = false)
    private Map<String, Object> dictNameResult = new HashMap<String, Object>();

    public Map<String, Object> getDictNameResult() {
        return dictNameResult;
    }

    public void setDictNameResult(Map<String, Object> dictNameResult) {
        this.dictNameResult = dictNameResult;
    }

    //数据字典
    @Transient
    @JsonInclude(JsonInclude.Include.NON_NULL)
    public String[] buildIncludeField(){
        return new String[]{"auditLogList","infsubAuditStatusCode","sltdBusiQlfyTypeCode"};
    }

    /*数据字典*/
    @Transient
    @JsonInclude(JsonInclude.Include.NON_NULL)
    public String[] buildIncludeType(){
        return new String[]{"LIST","DG0149","DG0111"};
    }
}